package org.activequant.dao;

import org.activequant.core.domainmodel.InstrumentSpecification;
import org.activequant.core.domainmodel.marketscanner.InstrumentSpecificationDetails;
import org.activequant.util.exceptions.DaoException;

/**
* An interface. Extends the IDaoSupport&lt;InstrumentSpecificationDetails&gt; interface.<br/>
* Defines the following methods:
* <ul>
* <li>InstrumentSpecificationDetails findByInstrumentSpecification(InstrumentSpecification spec) throws DaoException;</li>
* </ul>
* Inherits the following methods:
* <ul>
* <li>InstrumentSpecificationDetails[] findAll() throws DaoException;</li>
* <li>InstrumentSpecificationDetails[] findAllByExample(InstrumentSpecificationDetails entity) throws DaoException;</li>
* <li>InstrumentSpecificationDetails findByExample(InstrumentSpecificationDetails entity) throws DaoException;</li>
* <li>InstrumentSpecificationDetails find(long id) throws DaoException;</li>
* <li>InstrumentSpecificationDetails update(InstrumentSpecificationDetails entity) throws DaoException;</li>
* <li>InstrumentSpecificationDetails[] update(InstrumentSpecificationDetails... entities) throws DaoException;</li>
* <li>List&lt;InstrumentSpecificationDetails&gt; update(List&lt;InstrumentSpecificationDetails&gt; entities) throws DaoException;</li>
* <li>void delete(InstrumentSpecificationDetails entity) throws DaoException;</li>
* <li>void delete(InstrumentSpecificationDetails... entities) throws DaoException;</li>
* <li>void delete(List&lt;InstrumentSpecificationDetails&gt; entities) throws DaoException;</li>
* <li>void deleteAll() throws DaoException;</li>
* <li>int count() throws DaoException;</li>
* </ul>
* <b>History:</b><br>
*  - [28.06.2007] Created (Erik Nijkamp)<br>
*
*  @author Erik Nijkamp
*  @author Ulrich Staudinger
*/
public interface ISpecificationDetailsDao extends IDaoSupport<InstrumentSpecificationDetails> {
	/**
	 * Finds an InstrumentSpecificationDetails for the given spec(InstrumentSpecification), or null if it doesn't exist
	 * @param spec
	 * @return
	 * @throws DaoException
	 */
	InstrumentSpecificationDetails findByInstrumentSpecification(InstrumentSpecification spec) throws DaoException;
    
}
